Video content delivered through error-prone communication channels are subjected to errors introduced during transmission. Within many application infrastructures, transmission errors often result in losses of the data to be received by an application. For low bit-rate video transmission applications, for example 3GPP networks, each lost data unit usually corresponds to the loss of a coded frame at the application layer. If left untreated, such corrupted bitstream as presented to the video decoder can derail or even crash the decoding process. Therefore, mechanisms should be in place within the decoder to detect such losses.
Video frames can be divided into two types in H.264 bitstreams, reference frames and non-reference frames. The current H.264 decoder JM software can detect a lost reference frame by checking a variable called “frame_num” assigned to each reference frame. “frame_num” is incremented by 1 for the next reference frame, so when the gap between two consecutive “frame_num” is greater than 1, the decoder is aware that a lost reference frame occurred. In this case, the current decoder JM software stops any further decoding.
Moreover, the current H.264 decoder JM software cannot detect the loss of a non-reference frame. The decoder-simply decodes the next available frame in the bitstream and skips the lost frame. Hence, the output video sequence has fewer frames and this can cause display speed jitter, which affects the final viewing experience.